//
// Created by 下次一定 on 2021/9/7.
// M a b   将 a b 合并在一起
// Q a b   查询a b 是否在同一个集合上
//

#include <iostream>
using namespace std;

const int N = 100010;
int p[N];

int m,n;

int find(int x){//返回x的祖宗节点  同时对路径压缩
    if(p[x]!=x)  p[x]= find(p[x]);
    //while(p[x]!=x)x=p[x];  这个不会对路径压缩
    return p[x];
}


int main(){
    cin >> n >> m;
    for (int i = 0 ;i<n;i++)p[i]=i;

    while(m--){
        char op[2];
        int a , b;
        cin >>op>>a>>b;

        if(op[0]=='I')//a的祖宗节点的父亲=b的祖宗节点
            p[find(a)]=p[find(b)];
        else {
            if(find(a)==find(b)) puts("yes");
            else puts("no");
        }

    }
}
